1. Field of the Invention
The invention relates to a method of automatic production of specifications. The field of the invention is that of the description or the specification of protocols and data processing methods. This field is referred to as that of high-level languages or fourth generation languages. A particular feature of such languages is that they simultaneously analyze and solve a problem. The object of the invention is to translate specifications written in an older language into a specification corresponding to another, more recent, language. The translation is automatic, in order to enable existing specifications and descriptions to be re-used at lower cost.
2. Description of the Prior Art
One prior art language is the Specification and Description Language (SDL). It was created in 1980. It is defined by Recommendation Z.100 of the ITU (International Telecommunications Union). SDL was therefore designed from the outset for use in the field of telecommunications. It is therefore particularly well suited to that field, and a few problems arise when attempts are made to use it in other fields, such as aviation, rail transport control and medicine.
SDL is based on a multilevel analysis of a problem. Initially the problem is regarded as a system at the general level, which is the highest level. This is shown in FIG. 1. The system 101 includes blocks such as the blocks 102 and 103, for example. The block 102 communicates with the exterior of the system 101 via a channel 104. The blocks 102 and 103 communicate with each other via a signal path 105.
The block 102 can include a process 106 and a process 107. The process 106 can include one or more services 108 and one or more procedures 109. A service is characterized by a behavior which is represented in the form of a finite state machine. A finite state machine includes states and transitions between states. In FIG. 1, the blocks 102 and 103 are not shown the same size, but they are of equal importance in the hierarchy. Likewise the process 106 and the process 107. By the some token, there can very well be more than two blocks in a system. As a general rule, the number of elements included in an element of a higher level of description varies widely. In an SDL description, the hierarchical nature of the description is therefore expressed by various concepts. A xe2x80x9cconceptxe2x80x9d is a system, process, service, procedure, signal path or channel. Unfortunately, this hierarchy, although highly practical, is also very rigid. What is more, it stems from storage in a back-up memory, which is also very rigid.
A consequence of this rigidity is that once a specification or model has been written, it is very difficult to modify it if it is to evolve or to re-use one of its elements in another specification or model. This is a problem. Two systems can be very close together and require similar development periods, although they are successive in time. With a specification written in a language of this kind, elements of the one cannot be re-used in the other.
Another prior art language is the Unified Modeling Languages for Real Time (UML-RT). It has the same characteristics as SDL, but manipulates only three concepts. These concepts are capsule, port and connection between ports. Each capsule can contain either other capsules or a finite state machine, or both. A model or specification is then formed by a network of capsules interconnected by ports.
FIG. 2 shows a capsule 201 which has a port 202 and a port 203. The capsule 201 also includes a finite state machine 204 which is connected to the port 202. The machine 204 produces states 205 and 206 which evolve through transitions 207 and 208. The capsule 201 also includes the capsule 209 which includes a port 210. The port 210 is connected to the port 203. The capsule communicates with the outside environment via the ports 202 and 203. The main characteristic of UML-RT is the independence of the internal behavior of the capsule 201 and the external environment. UML-RT can therefore be used to model an application using capsules which are easy to re-use for other applications. It is also easy to modify a capsule, because the interior of a capsule is independent of the exterior.
The above two languages, SDL and UML-RT, therefore adopt a totally different approach to problems. SDL is very hierarchical and its hierarchy is fixed, while UML-RT, although hierarchical, is much more flexible to use and to re-use, because of the independence of the capsules.
The invention solves development problems associated with this duality of language by enabling conversion from an older high-level language to another, more recent, high-level language, in the SDL to UML-RT direction. This simplifies the evolution of systems and makes them directly compatible with each other. To this end, in accordance with the invention, the representation in memory of the model of an application in SDL is analyzed. SDL keywords are looked for, and when found are replaced with the equivalent UML-RT keywords. Relations between different elements constituting the model in SDL are then analyzed to convert them into equivalent, and often simpler, relations in UML. This conversion enables elements already developed in SDL to be re-used and also enables evolution of existing applications which were originally written in SDL.
The invention therefore provides a method of automatic translation from a first specification written in SDL to a second specification written in UML-RT, said first specification including the following concepts: system, block, process, service, channel and/or signal path as a function of a level of detail described in an application to be specified, in which method:
key SDL concepts corresponding to system, block, process and service are replaced by the UML-RT key concept corresponding to capsule,
key SDL concepts corresponding to channel and signal path are replaced by the UML-RT key concepts corresponding to connection and port, and
key SDL concepts corresponding to signal are replaced by the UML-RT key concept corresponding to signal.
In practice, concepts are simply replaced by replacing keywords of one language with keywords of another language in the programs corresponding to the specifications. It will be shown that it is then possible to produce specifications written in a more recent language very quickly from specifications written in an older language. This enables simple updating of existing programs and provides the required modularity and facility for re-use of program elements.